#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include "MapLoader.h"
#include "Map.h"

using namespace std;

string MapLoader::file = "";
Map *MapLoader::monde;

void MapLoader::saveMap(){

    ofstream fichier(file.c_str(), ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert

    if(fichier)
    {
            for(int i=0; i<30; i++){
                for(int j=0; j<30; j++){
                    fichier << monde->getTabValue(i,j) << endl;
                }
            }

            fichier.close();
    }
    else
            cerr << "Impossible d'ouvrir le fichier !" << endl;

}

void MapLoader::openMap(){

    ifstream fichier(file.c_str(), ios::in);  // on ouvre en lecture

    if(fichier)  // si l'ouverture a fonctionné
    {
        string contenu;  // déclaration d'une chaîne qui contiendra la ligne lue
        int number;
        istringstream ss;
        for(int i=0; i<30; i++){
            for(int j=0; j<30; j++){
                getline(fichier, contenu);
                ss.str(contenu);
                ss >> number;
                monde->changeTabValue(i,j,number);
                ss.clear();
            }
        }
        fichier.close();
    }
    else
            cerr << "Impossible d'ouvrir le fichier !" << endl;
}

void MapLoader::setFileName(string fileName){
    file = fileName;
}

void MapLoader::setMap(Map &monde){
    MapLoader::monde = &monde;
}
